Monolithic read-while-write flash memory device

ABSTRACT

A memory device includes an executable flash memory partition and a non-executable partition, both partitions being fabricated on a common die. Preferably, both partitions are fabricated using the same flash memory technology. Most preferably, the flash cells of both partitions have insulating floating gates.

This is a Continuation of U.S. patent application Ser. No. 10/445,358 filed May 27, 2003, which is a continuation-in-part of U.S. Provisional Patent Application No. 60/463,556 filed Apr. 16, 2003.

FIELD AND BACKGROUND OF THE INVENTION

The present invention relates to flash memory devices and, more particularly, to a flash memory device that combines executable and non-executable memory on a common semiconductor die.

Flash memory is a well-known data storage technology that is widely used for non-volatile data storage. Generally speaking, there are two classes of flash memory devices: random access devices and serial access devices.

Random-access flash devices are devices that can be randomly accessed for reading. Any storage bit within such a device can be directly accessed for reading by providing the address of the bit on the device pins and then immediately getting the requested bit value (without the device having to first internally access non-requested cells or to go through a sequence of command codes). There are two main types of random-access flash devices. One type of random-access flash device uses flash cells with conductive floating gates. Examples of this type of flash device include NOR devices, such as those manufactured and sold by Intel, AMD and other companies. The other type of random-access flash device uses flash cells with insulating floating gates. Examples of this type of flash device include the MirrorBit devices manufactured and sold by AMD (also offered by Fujitsu under the name MirrorFlash) and the NROM devices manufactured and sold by Saifun Semiconductors of Netanya, Israel.

Serial-access flash devices are devices in which the above is not valid. Storage bits within such a device can not be directly accessed for reading. When the s value of a bit has to be read, the device receives an address identifying a relatively large chunk of bits (typically a sector of 512 bytes=4096 bits), all the bits in the chunk are accessed and loaded into an internal RAM buffer within the device, and only then it is possible to get the value of the requested bit by providing its location within the chunk of data in the buffer. Example of such serial-access flash devices include NAND devices, such as those manufactured and sold by Toshiba, Samsung and other companies.

One advantage of serial access flash devices over random access flash devices is that serial access devices are more compact than comparable random access devices. This is because, with no need to access each bit individually, both the cells and the associated decoding and driving circuitry of a serial access device are smaller than the cells and the decoding and driving circuitry of a comparable random access device. A serial access device thus packs more bits into the same semiconductor area than a comparable random access device and costs less per bit than a comparable random access device.

N. B.: The above description treats the flash devices as storing independent bits. Most flash devices are actually organized in 8-bit bytes or 16-bits words (i.e. even in a random-access device it is not possible to read just a single bit and the minimum group of bits that can be accessed is a byte or a word). However, this detail has no significance for the present invention and therefore the single bit picture has been used above for illustrational simplicity.

N. B.: Flash cells can be either binary (i.e. one bit per cell) or multi-level (i.e. more than one bit per cell) as in Harari, U.S. Pat. No. 5,043,940 and in Assar et al., U.S. Pat. No. 5,596,526. The present invention is applicable to both kinds of flash cells, even though for illustrational simplicity the explanations above are in terms of binary cells.

Another way to classify flash memory devices is according to whether or not they are executable. An “executable” flash device is a flash device in which computer machine code can be stored and directly executed in place without first being copied to some other memory device. The two classifications, random-access vs. serial-access and executable vs. non-executable, are not independent, as can be seen from the following three considerations:

1. Both random-access flash memory devices and serial-access flash memory devices can be used for data storage.

2. Computer code is just a particular type of data, that can be stored either in a random-access flash memory device or in a serial-access flash memory device.

3. Only random-access memory devices are executable. This is because while executing the code, the executing processor needs to access random locations within the memory. For example, a JUMP command in the code makes the processor ask for a next location that can be far away from the previous location.

Modern cellular telephones, personal data assistants (PDAs) and similar electronic devices need to store both code and non-code data. There are at least four ways to do this using flash memory devices:

1. Use a first flash memory device, which may be executable or non-executable, for non-code data storage. Use a second, executable flash memory device for code storage. Execute the code in-place from the second device.

2. Use a first flash memory device, which may be executable or non-executable, for non-code data storage. Use a second flash memory device, which also may be executable or non-executable, for code storage. The code to be executed is copied from the second flash memory device to a volatile random access memory (RAM) and is executed from the RAM. This design requires at least a small amount of executable non-volatile memory for executing the system's boot code on start-up. This boot code memory can be either in the second flash memory device (if the second flash memory device is executable) or in a separate integrated circuit.

3. Use a single, executable flash memory device to store both code and non-code data. The code is executed in-place from the flash memory device.

4. Use only one flash memory device, which may be executable or non-executable, to store both code and non-code data. The code to be executed is copied from the flash memory device to RAM and is executed from the RAM. As in the second option, there must be at least a small amount of executable non-volatile memory for executing boot code.

Each of these four architectures has its own respective advantages and disadvantages. All four architectures are in use today. However, as reducing manufacturing costs becomes more and more important, there is a clear advantage to the third architecture above that uses a single flash integrated circuit rather than two integrated circuits and that does not require adding extra RAM from which to execute the code. Therefore, recently, more and more cellular phones and PDAs are being made with only one flash memory device, from which flash memory device the code is executed directly in-place.

Nevertheless, there is an inherent problem in the configuration that executes code on the same flash memory device in which non-code data are stored. When non-code data are written or erased, the flash memory device requires a relatively long time to complete the write or erase operation. For example, in a typical NOR flash device, reading takes tens of nanoseconds per randomly read data unit (byte or word, depending on the specific device architecture), writing takes a few microseconds per randomly written data unit (byte or word) and erasing, which is done in units of entire blocks (typically 64 Kilobytes per block), takes hundreds of milliseconds. While a flash memory device is occupied with writing or erasing, it may not be able to respond to read requests for code to be executed. The execution of code that invokes a write or erase operation could actually block the continued execution of other code, resulting in a cellular telephone or PDA with this kind of memory configuration hanging.

Two methods are employed in the prior art to overcome this problem.

The first method is to split the executable flash memory device into two or more separate portions, often referred to as “partitions”, that are capable of independent operation. In this context, “independence” means that even though a write/erase operation is taking place in one partition, a read request from another partition can still be served immediately without waiting for write/erase completion and without interfering with the write/erase operation. This capability is called “Read While Write” or “RWW” by some flash vendors. A flash memory device that supports such capability stores and executes the code in one partition and stores the non-code data in another partition. Both Intel and AMD offer such devices. It should be noted that each partition is capable of supporting either code or non-code data, and it is up to the system designer to decide where to keep the code and where to keep the non-code data (of course making sure the processor is directed to a code section upon system boot).

The second method is to use software to “shield” the flash memory device from the problem by guaranteeing that in-place code execution never overlaps flash write or flash erase in time. Such solutions are not trivial and require some clever programming. Simply put, the flash supporting software copies some of its flash access code into RAM, and then when a write/erase operation is initiated, the flash supporting software makes sure the only code that runs during the operation time is code executed from RAM. Because the system might receive high priority external interrupts that require immediate handling and cannot wait for the completion of the flash operation (e.g. getting an incoming call in a cellular telephone), the flash supporting software must disable interrupts before starting the write/erase operation (to keep the processor from jumping to the interrupt service routine) and must continuously monitor for incoming interrupts. If such an interrupt is detected, the flash support software suspends the write/erase operation, allows the interrupt to be serviced, and then resumes the operation. Compared to the first method, this method is not easy to configure and port to new flash memory devices; but this is the only option for a flash memory device that lacks RWW capability. Intel offers two software packages, called FDI and PSM, for supporting its flash memory devices, that work according to these principles.

There remains a major deficiency in the flash devices used in systems that have the third architecture described above (one flash memory device for both code and non-code data, with code executed in place). Even though only a portion of the flash memory device is used for code execution and so needs to be executable, all portions of the flash memory device are fully executable. This is a disadvantage because executable flash memory occupies more area on a semiconductor die than equivalent non-executable flash memory. This extra cost of “executability” is paid even for portions of the flash memory that do not require it. Some semiconductor manufacturers (e.g., Samsung) recognize this deficiency and offer flash packages that are assemblies of multiple flash dies, some of which are executable and some of which are not executable. However, such “Multi-Chip Packages” offer a less than satisfactory solution to this problem, for several reasons. These packages usually are larger in height than conventional integrated circuits; their assembly costs are higher than the assembly costs of conventional integrated circuits; and they are generally less convenient to work with than conventional flash memory integrated circuits because they include flash dies of disparate technologies that require different interfacing and access methods.

There is thus a widely recognized need for, and it would be highly advantageous to have, a RWW flash memory device that would overcome the disadvantages of presently known RWW flash memory devices as described above.

SUMMARY OF THE INVENTION

According to the present invention there is provided a memory device including: (a) an executable flash memory partition; and (b) a non-executable partition; both of the partitions being fabricated on a common die.

Preferably, the non-executable partition is a serial-access partition. Alternatively, the non-executable partition is a random-access partition.

Preferably, both the executable partition and the non-executable partition are flash memory partitions. More preferably, both partitions are fabricated using a common flash memory technology. Most preferably, this common flash memory technology uses flash cells with insulating floating gates.

The scope of the present invention also includes an electronic device that includes a flash memory device of the present invention. Preferred examples of such electronic devices include cellular telephones and personal data assistants.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is herein described, by way of example only, with reference to the accompanying drawings, wherein:

FIG. 1 is a schematic diagram of the layout of a prior art RWW flash memory device;

FIG. 2 is a schematic diagram of the layout of a flash memory device of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention is of a monolithic (i.e., fabricated on a single semiconductor die) RWW flash memory device that is more compact than comparable prior art devices. The present invention can be used to store both in-place executable code and other data, with no interference between the execution of the code and slow (write or erase) operations on the other data.

The principles and operation of a monolithic RWW flash memory device according to the present invention may be better understood with reference to the drawings and the accompanying description.

Referring now to the drawings, FIG. 1 is a schematic diagram of the layout of a prior art RWW flash memory device 10. Device 10 includes a random-access flash cell array 12 that is partitioned into two partitions 12A and 12B. Each partition 12A and 12B has its own respective decoding and peripheral circuitry 14 that employs random access techniques and architectures to enable reading and writing selected bytes or words in that partition 12A and 12B. Partitions 12 and the associated circuitry 14 are fabricated on a common semiconductor (typically silicon) die 16.

As described above, a system designer selects one of partitions 12A or 12B for storing code and executing the stored code in-place, and uses the other partition for storing non-code data. Write and erase operations are executed on the partition 12A or 12B that is used to store the non-code data, simultaneously with the in-place execution of the code stored in the other partition 12A or 12B.

FIG. 2 is a schematic diagram of the layout of a flash memory device 20 of the present invention. Device 20 includes a flash cell array 22 that is partitioned into partitions 22A and 22B. Each partition 22A and 22B has its own respective decoding and peripheral circuitry 24. Circuitry 24A employs random access techniques and architectures to enable reading and writing selected bytes or words in partition 22A, thus making partition 22A executable. Circuitry 24B employs serial access techniques and architectures to enable reading and writing selected sectors in partition 22B, thereby avoiding the extra overhead that would be required to make partition 22B executable. Partitions 22 and the associated circuitry 24 are fabricated on a common semiconductor die 26. Because circuitry 24B is simpler than circuitry 24A, circuitry 24B occupies less area per associated flash cell on die 26 than circuitry 24A. This is illustrated symbolically in FIG. 2 by giving circuitry 24B a smaller area than circuitry 24A, and by giving partition 22B a correspondingly larger area than partition 22A.

Partition 22A, being executable, is used to store code and to execute the stored code in-place. Partition 22B, being non-executable, is used to store non-code data. Write and erase operations are executed on partition 22B simultaneously with the in-place execution of the code in partition 22A. Note that code that is stored in partition 22B and copied to another location (for example RAM) for execution is considered to be non-code data in the present context.

Preferably, both partitions 22 are fabricated using the same flash memory technology. Most preferably, the flash cells of partitions 22 are fabricated with insulating floating gates. The use of insulating floating gate technology allows the flash cells of partition 22A to be fabricated as random-access flash cells and the flash cells of partition 22B to be fabricated as serial-access flash cells. The present invention is based on the realization that insulating floating gate technology could be used to fabricate both a random-access flash cell array and a serial-access flash cell array on the same die 26, while achieving relatively good performance for both non-code data handling and in-place code execution. The relatively good write/erase performance required for non-code data handling is available because insulating gate technology is a type of NOR technology that can achieve a write/erase speed similar to NAND technology.

Alternatively, the flash cells of both partitions 22 are fabricated as random-access flash cells using an inherently random-access flash technology such as conventional NOR flash. Under that alternative, what makes partition 22B non-executable is the associated circuitry 24B that allows only serial access to partition 22B. This alternative is less preferred than the use of insulating gate technology because of this alternative's relatively poorer performance in non-code data handling in partition 22B.

A third, much less preferred option is to fabricate partitions 22A and 22B using different flash technologies, for example (random-access) NOR flash for executable partition 22A and (serial-access) NAND flash for non-executable partition 22B. This option is much less preferred because the differences in the manufacturing methods of the two flash technologies make using both flash technologies on the same die 26 difficult and not cost-effective.

It should be noted that, although the scope of the present invention includes non-executable partitions 22B that are based on a data storage technology other than flash memory, the present invention requires executable partition 22A to be based on flash memory technology. Thus, the scope of the present invention explicitly excludes devices with executable RAM, prior art examples of which devices include, for example, the MDOC devices available from M-Systems of Kfar Saba, Israel.

While the invention has been described with respect to a limited number of embodiments, it will be appreciated that many variations, modifications and other applications of the invention may be made. 

1. A memory device comprising: (a) an executable flash memory partition; and (b) a non-executable partition; both said partitions being fabricated on a common die.
 2. The memory device of claim 1, wherein said non-executable partition is a serial-access partition.
 3. The memory device of claim 1, wherein said non-executable partition is a random-access partition.
 4. The memory device of claim 1, wherein said non-executable partition is a flash memory partition.
 5. The memory device of claim 4, wherein both said partitions are fabricated using a common flash memory technology.
 6. The memory device of claim 5, wherein said flash memory technology uses flash cells with insulating floating gates.
 7. An electronic device comprising the memory device of claim
 1. 8. The electronic device of claim 7, wherein the electronic device is a cellular telephone.
 9. The electronic device of claim 7, wherein the electronic device is a personal data assistant.
 10. A method of operating an electronic device, comprising the steps of: (a) providing a memory device that includes: (i) an executable flash memory partition, and (ii) a non-executable partition; both said partitions being fabricated on a common die; (b) storing, in said executable partition, code for operating the electronic device; and (c) executing said code in-place to operate the electronic device; wherein said code that is executed in-place to operate the electronic device is stored only in said executable partition.
 11. An electronic device comprising a memory device that includes: (a) an executable flash memory partition having stored therein code for operating the electronic device; and (b) a non-executable partition; wherein both said partitions are fabricated on a common die, and wherein said code for operating the electronic device, that is stored in said executable partition, is stored only in said executable partition. 